package com.wicket.okrbff.biz.service.impl;

import cn.hutool.core.bean.BeanUtil;
import com.wicket.okrbff.biz.service.OrgPositionService;
import com.wicket.okrbff.biz.service.dto.common.BffOrgDeptPositionDto;
import com.wicket.okrbff.biz.service.dto.common.BffOrgPositionDto;
import com.wicket.okrbff.biz.service.dto.common.BffStationDto;
import com.wicket.okrbff.biz.service.dto.req.*;
import com.wicket.okrbff.biz.service.dto.res.*;
import com.wicket.okrbff.common.util.RedisUtil;
import com.wicket.okrframework.integration.FwBaseOrgPositionClient;
import com.wicket.okrframework.integration.dto.*;
import org.apache.skywalking.apm.toolkit.trace.Tag;
import org.apache.skywalking.apm.toolkit.trace.Tags;
import org.apache.skywalking.apm.toolkit.trace.Trace;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.stream.Collectors;
import com.wicket.okrbff.common.exception.Assert;

/**
 * @author ：
 * @date ：
 *
 *
 * @version 1.0
 */
@Service
public class OrgPositionServiceImpl implements OrgPositionService {

    @Resource
    FwBaseOrgPositionClient fwBaseOrgPositionClient;
    @Resource
    private RedisUtil redisUtil;

    /**
   * B1-3查询部门职务明细列表（边界）[901]
   * gen by moon at 8/10/2022, 3:31:13 AM
   */
    @Trace(operationName = "B1-3查询部门职务明细列表（边界）")
    @Tags({@Tag(key = "参数",value = "arg[0]"),
            @Tag(key = "返回值",value = "returnedObj")})
  @Override
  public BffQueryDeptPositionInfoListRespDto queryDeptPositionInfoList(BffQueryDeptPositionInfoListReqDto reqDto){
      
       
       QueryDeptPositionInfoListRespDto queryDeptPositionInfoListRespDto_1 = null;
//步骤0: D1-3查询部门职务明细列表 - queryDeptPositionInfoList
     QueryDeptPositionInfoListRespDto queryDeptPositionInfoListRespDto = null;
    QueryDeptPositionInfoListReqDto queryDeptPositionInfoListReqDto=new QueryDeptPositionInfoListReqDto();
  if(reqDto!=null){
      queryDeptPositionInfoListReqDto.setOrgEntityId(reqDto.getOrgEntityId());//sourceId:48847_1
    }
  
    /*D1-3查询部门职务明细列表[1082]   */
    Assert.isNull(queryDeptPositionInfoListReqDto.getOrgEntityId(),"B1-3查询部门职务明细列表（边界）-D1-3查询部门职务明细列表-所属对象实例ID不能为空",false);
      queryDeptPositionInfoListRespDto = fwBaseOrgPositionClient.queryDeptPositionInfoList(queryDeptPositionInfoListReqDto).getData();
      
      queryDeptPositionInfoListRespDto_1 = queryDeptPositionInfoListRespDto;
    
BffQueryDeptPositionInfoListRespDto retData = new BffQueryDeptPositionInfoListRespDto();
  if(queryDeptPositionInfoListRespDto_1!=null){
      retData.setOrgPositionList(queryDeptPositionInfoListRespDto_1.getOrgPositionList().stream().map(item -> BeanUtil.toBean(item, BffOrgPositionDto.class)).collect(Collectors.toList()));//sourceId:48864_1
    }
  

  
  
return retData;
  }

    /**
   * B1-3查询部门下岗位列表（边界）[1486]
   * gen by moon at 8/10/2022, 3:35:49 AM
   */
    @Trace(operationName = "B1-3查询部门下岗位列表（边界）")
    @Tags({@Tag(key = "参数",value = "arg[0]"),
            @Tag(key = "返回值",value = "returnedObj")})
  @Override
  public BffQueryDeptStationListBorderRespDto queryDeptStationListBorder(BffQueryDeptStationListBorderReqDto reqDto){
      
       
       QueryDeptStationListRespDto queryDeptStationListRespDto_1 = null;
//步骤0: D1-3查询部门下岗位列表 - queryDeptStationList
     QueryDeptStationListRespDto queryDeptStationListRespDto = null;
    QueryDeptStationListReqDto queryDeptStationListReqDto=new QueryDeptStationListReqDto();
  if(reqDto!=null){
      queryDeptStationListReqDto.setOrgEntityId(reqDto.getOrgEntityId());//sourceId:48955_1
    }
  
    /*D1-3查询部门下岗位列表[1472]   */
    Assert.isNull(queryDeptStationListReqDto.getOrgEntityId(),"B1-3查询部门下岗位列表（边界）-D1-3查询部门下岗位列表-所属对象实例ID不能为空",false);
      queryDeptStationListRespDto = fwBaseOrgPositionClient.queryDeptStationList(queryDeptStationListReqDto).getData();
      
      queryDeptStationListRespDto_1 = queryDeptStationListRespDto;
    
BffQueryDeptStationListBorderRespDto retData = new BffQueryDeptStationListBorderRespDto();
  if(queryDeptStationListRespDto_1!=null){
      retData.setStationList(queryDeptStationListRespDto_1.getStationList().stream().map(item -> BeanUtil.toBean(item, BffStationDto.class)).collect(Collectors.toList()));//sourceId:48958_1
    }
  

  retData.setPageNum(queryDeptStationListRespDto.getPageNum());
        retData.setPageSize(queryDeptStationListRespDto.getPageSize());
        retData.setTotal(queryDeptStationListRespDto.getTotalNum());
        retData.setIsLastPage((Math.ceil(Double.valueOf(queryDeptStationListRespDto.getTotalNum()) / Double.valueOf(queryDeptStationListRespDto.getPageSize()))) <= retData.getPageNum());
        
  
return retData;
  }

    /**
   * B1-3查询部门岗位明细列表（边界）[1388]
   * gen by moon at 8/10/2022, 3:35:13 AM
   */
    @Trace(operationName = "B1-3查询部门岗位明细列表（边界）")
    @Tags({@Tag(key = "参数",value = "arg[0]"),
            @Tag(key = "返回值",value = "returnedObj")})
  @Override
  public BffQueryDeptSatAndPstListRespDto queryDeptSatAndPstList(BffQueryDeptSatAndPstListReqDto reqDto){
      
       
       QueryDeptStationInfoListRespDto queryDeptStationInfoListRespDto_1 = null;
//步骤0: D1-3查询组织/部门岗位明细列表 - queryDeptStationInfoList
     QueryDeptStationInfoListRespDto queryDeptStationInfoListRespDto = null;
    QueryDeptStationInfoListReqDto queryDeptStationInfoListReqDto=new QueryDeptStationInfoListReqDto();
  queryDeptStationInfoListReqDto.setOrgTypeCode("DEPARTMENT");//sourceId:54140_1
if(reqDto!=null){
      queryDeptStationInfoListReqDto.setOrgEntityId(reqDto.getOrgEntityId());//sourceId:48883_1
    }
  
    /*D1-3查询组织/部门岗位明细列表[1652]   */
    Assert.isNull(queryDeptStationInfoListReqDto.getOrgEntityId(),"B1-3查询部门岗位明细列表（边界）-D1-3查询组织/部门岗位明细列表-所属对象实例ID不能为空",false);
Assert.isNull(queryDeptStationInfoListReqDto.getOrgTypeCode(),"B1-3查询部门岗位明细列表（边界）-D1-3查询组织/部门岗位明细列表-所属实例类型编码不能为空",false);
      queryDeptStationInfoListRespDto = fwBaseOrgPositionClient.queryDeptStationInfoList(queryDeptStationInfoListReqDto).getData();
      
      queryDeptStationInfoListRespDto_1 = queryDeptStationInfoListRespDto;
    
BffQueryDeptSatAndPstListRespDto retData = new BffQueryDeptSatAndPstListRespDto();
  if(queryDeptStationInfoListRespDto_1!=null){
      retData.setStationList(queryDeptStationInfoListRespDto_1.getStationList().stream().map(item -> BeanUtil.toBean(item, BffStationDto.class)).collect(Collectors.toList()));//sourceId:48886_1
    }
  

  
  
return retData;
  }

    /**
   * B1-3查询部门职务列表（边界）[1380]
   * gen by moon at 8/10/2022, 3:35:09 AM
   */
    @Trace(operationName = "B1-3查询部门职务列表（边界）")
    @Tags({@Tag(key = "参数",value = "arg[0]"),
            @Tag(key = "返回值",value = "returnedObj")})
  @Override
  public BffQueryDeptPositionListBorderRespDto queryDeptPositionListBorder(BffQueryDeptPositionListBorderReqDto reqDto){
      
       
       QueryOrgDeptPositionListBorderRespDto queryOrgDeptPositionListBorderRespDto_1 = null;
//步骤0: D1-3查询组织部门职务列表（边界） - queryOrgDeptPositionListBorder
     QueryOrgDeptPositionListBorderRespDto queryOrgDeptPositionListBorderRespDto = null;
    QueryOrgDeptPositionListBorderReqDto queryOrgDeptPositionListBorderReqDto=new QueryOrgDeptPositionListBorderReqDto();
  if(reqDto!=null){
      queryOrgDeptPositionListBorderReqDto.setOrgTypeCode(reqDto.getOrgTypeCode());//sourceId:35750_1
queryOrgDeptPositionListBorderReqDto.setOrgEntityId(reqDto.getOrgEntityId());//sourceId:35751_1
queryOrgDeptPositionListBorderReqDto.setPositionGradeId(reqDto.getPositionGradeId());//sourceId:35968_1
    }
  
    /*D1-3查询组织部门职务列表（边界）[1456]   */
    Assert.isNull(queryOrgDeptPositionListBorderReqDto.getOrgTypeCode(),"B1-3查询部门职务列表（边界）-D1-3查询组织部门职务列表（边界）-所属实例类型编码不能为空",false);
Assert.isNull(queryOrgDeptPositionListBorderReqDto.getOrgEntityId(),"B1-3查询部门职务列表（边界）-D1-3查询组织部门职务列表（边界）-所属对象实例ID不能为空",false);
      queryOrgDeptPositionListBorderRespDto = fwBaseOrgPositionClient.queryOrgDeptPositionListBorder(queryOrgDeptPositionListBorderReqDto).getData();
      
      queryOrgDeptPositionListBorderRespDto_1 = queryOrgDeptPositionListBorderRespDto;
    
BffQueryDeptPositionListBorderRespDto retData = new BffQueryDeptPositionListBorderRespDto();
  if(queryOrgDeptPositionListBorderRespDto_1!=null){
      retData.setOrgDeptPositionList(queryOrgDeptPositionListBorderRespDto_1.getOrgDeptPositionList().stream().map(item -> BeanUtil.toBean(item, BffOrgDeptPositionDto.class)).collect(Collectors.toList()));//sourceId:35757_1
    }
  

  
  
return retData;
  }

    /**
   * B1-3查询组织岗位列表（边界）[1783]
   * gen by moon at 8/10/2022, 3:37:37 AM
   */
    @Trace(operationName = "B1-3查询组织岗位列表（边界）")
    @Tags({@Tag(key = "参数",value = "arg[0]"),
            @Tag(key = "返回值",value = "returnedObj")})
  @Override
  public BffQueryOrgStationListRespDto queryOrgStationList(BffQueryOrgStationListReqDto reqDto){
      
       
       QueryDeptStationInfoListRespDto queryDeptStationInfoListRespDto_1 = null;
//步骤0: D1-3查询组织/部门岗位明细列表 - queryDeptStationInfoList
     QueryDeptStationInfoListRespDto queryDeptStationInfoListRespDto = null;
    QueryDeptStationInfoListReqDto queryDeptStationInfoListReqDto=new QueryDeptStationInfoListReqDto();
  queryDeptStationInfoListReqDto.setOrgTypeCode("ORGANIZATION");//sourceId:54215_1
if(reqDto!=null){
      queryDeptStationInfoListReqDto.setOrgEntityId(reqDto.getOrgEntityId());//sourceId:54213_1
queryDeptStationInfoListReqDto.setStationTypeId(reqDto.getStationTypeId());//sourceId:54216_1
    }
  
    /*D1-3查询组织/部门岗位明细列表[1652]   */
    Assert.isNull(queryDeptStationInfoListReqDto.getOrgTypeCode(),"B1-3查询组织岗位列表（边界）-D1-3查询组织/部门岗位明细列表-所属实例类型编码不能为空",false);
Assert.isNull(queryDeptStationInfoListReqDto.getOrgEntityId(),"B1-3查询组织岗位列表（边界）-D1-3查询组织/部门岗位明细列表-所属对象实例ID不能为空",false);
      queryDeptStationInfoListRespDto = fwBaseOrgPositionClient.queryDeptStationInfoList(queryDeptStationInfoListReqDto).getData();
      
      queryDeptStationInfoListRespDto_1 = queryDeptStationInfoListRespDto;
    
BffQueryOrgStationListRespDto retData = new BffQueryOrgStationListRespDto();
  if(queryDeptStationInfoListRespDto_1!=null){
      retData.setStationList(queryDeptStationInfoListRespDto_1.getStationList().stream().map(item -> BeanUtil.toBean(item, BffStationDto.class)).collect(Collectors.toList()));//sourceId:54221_1
    }
  

  
  
return retData;
  }

    /**
   * B1-3查询部门岗位列表（边界）[1782]
   * gen by moon at 8/10/2022, 3:37:36 AM
   */
    @Trace(operationName = "B1-3查询部门岗位列表（边界）")
    @Tags({@Tag(key = "参数",value = "arg[0]"),
            @Tag(key = "返回值",value = "returnedObj")})
  @Override
  public BffQueryDeptStationListRespDto queryDeptStationList(BffQueryDeptStationListReqDto reqDto){
      
       
       QueryDeptStationInfoListRespDto queryDeptStationInfoListRespDto_1 = null;
//步骤0: D1-3查询组织/部门岗位明细列表 - queryDeptStationInfoList
     QueryDeptStationInfoListRespDto queryDeptStationInfoListRespDto = null;
    QueryDeptStationInfoListReqDto queryDeptStationInfoListReqDto=new QueryDeptStationInfoListReqDto();
  queryDeptStationInfoListReqDto.setOrgTypeCode("DEPARTMENT");//sourceId:54141_1
if(reqDto!=null){
      queryDeptStationInfoListReqDto.setOrgEntityId(reqDto.getOrgEntityId());//sourceId:54135_1
queryDeptStationInfoListReqDto.setStationTypeId(reqDto.getStationTypeId());//sourceId:54196_1
    }
  
    /*D1-3查询组织/部门岗位明细列表[1652]   */
    Assert.isNull(queryDeptStationInfoListReqDto.getOrgTypeCode(),"B1-3查询部门岗位列表（边界）-D1-3查询组织/部门岗位明细列表-所属实例类型编码不能为空",false);
Assert.isNull(queryDeptStationInfoListReqDto.getOrgEntityId(),"B1-3查询部门岗位列表（边界）-D1-3查询组织/部门岗位明细列表-所属对象实例ID不能为空",false);
      queryDeptStationInfoListRespDto = fwBaseOrgPositionClient.queryDeptStationInfoList(queryDeptStationInfoListReqDto).getData();
      
      queryDeptStationInfoListRespDto_1 = queryDeptStationInfoListRespDto;
    
BffQueryDeptStationListRespDto retData = new BffQueryDeptStationListRespDto();
  if(queryDeptStationInfoListRespDto_1!=null){
      retData.setStationList(queryDeptStationInfoListRespDto_1.getStationList().stream().map(item -> BeanUtil.toBean(item, BffStationDto.class)).collect(Collectors.toList()));//sourceId:54138_1
    }
  

  
  
return retData;
  }

    /**
   * B1-3查询职务归属组织列表（管理）[1495]
   * gen by moon at 8/10/2022, 3:35:51 AM
   */
    @Trace(operationName = "B1-3查询职务归属组织列表（管理）")
    @Tags({@Tag(key = "参数",value = "arg[0]"),
            @Tag(key = "返回值",value = "returnedObj")})
  @Override
  public BffQueryPositionOrgListRespDto queryPositionOrgList(BffQueryPositionOrgListReqDto reqDto){
      
       
       QueryPositionOrgListRespDto queryPositionOrgListRespDto_1 = null;
//步骤0: D1-3查询职务归属组织列表 - queryPositionOrgList
     QueryPositionOrgListRespDto queryPositionOrgListRespDto = null;
    QueryPositionOrgListReqDto queryPositionOrgListReqDto=new QueryPositionOrgListReqDto();
  if(reqDto!=null){
      queryPositionOrgListReqDto.setPositionId(reqDto.getPositionId());//sourceId:40101_1
    }
  
    /*D1-3查询职务归属组织列表[1498]   */
    Assert.isNull(queryPositionOrgListReqDto.getPositionId(),"B1-3查询职务归属组织列表（管理）-D1-3查询职务归属组织列表-职务ID不能为空",false);
      queryPositionOrgListRespDto = fwBaseOrgPositionClient.queryPositionOrgList(queryPositionOrgListReqDto).getData();
      
      queryPositionOrgListRespDto_1 = queryPositionOrgListRespDto;
    
BffQueryPositionOrgListRespDto retData = new BffQueryPositionOrgListRespDto();
  if(queryPositionOrgListRespDto_1!=null){
      retData.setOrgDeptPositionList(queryPositionOrgListRespDto_1.getOrgDeptPositionList().stream().map(item -> BeanUtil.toBean(item, BffOrgDeptPositionDto.class)).collect(Collectors.toList()));//sourceId:63336_1
    }
  

  
  
return retData;
  }
    //
}
